package com.eduagent.xwqeduagent.model.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 教育平台翻译请求DTO
 */
@Data
@Schema(description = "教育场景翻译请求参数")
public class TranslationRequestDTO {

    @Schema(description = "待翻译文本", required = true, example = "The mitochondrion is the powerhouse of the cell.")
    private String text;

    @Schema(description = "源语言", required = true, example = "en")
    private String sourceLanguage;

    @Schema(description = "目标语言", required = true, example = "cn")
    private String targetLanguage;
    
    @Schema(description = "学科领域", example = "biology")
    private String subject;
    
    @Schema(description = "教育级别，可选值: primary, middle, high, college, professional", example = "college")
    private String educationLevel;
    
    @Schema(description = "是否保留专业术语不翻译", example = "true")
    private Boolean preserveTerminology;
    
    @Schema(description = "特定术语映射，用于自定义术语的翻译")
    private List<TerminologyMapping> terminologyMappings;
    
    @Schema(description = "使用场景，可选值: classroom, assignment, exam, paper, general", example = "classroom")
    private String usageContext;
    
    @Schema(description = "是否需要翻译解释", example = "true")
    private Boolean needExplanation;
    
    @Schema(description = "是否需要替代表达", example = "false")
    private Boolean needAlternatives;
    
    @Schema(description = "用户ID，用于个性化翻译")
    private String userId;

    /**
     * 术语映射
     */
    @Data
    @Schema(description = "术语映射")
    public static class TerminologyMapping {
        
        @Schema(description = "源语言术语", example = "mitochondrion")
        private String sourceTerm;
        
        @Schema(description = "目标语言术语", example = "线粒体")
        private String targetTerm;
    }
} 